<?php

namespace app\admin\controller;


use think\Controller;
use think\facade\Request;
use \app\admin\model\Goods as goodslist;
use think\Db;

class Goods extends Controller
{

    function index()
    {
        // 通过模型
        // 查询列表数据
        // $data = goodslist::select();
        $param = Request::param('keyword');
        if(!empty($param)){
            $data = goodslist::where('goods_name', "like", "%$param%")->paginate(2,false,['query'=>['keyword'=>$param]]);
        }else{
            $data = goodslist::where([])->paginate(2);
        }
        
        // dump($data);
        // 渲染模板，传递数据 assgin
        
        return $this->fetch('index', ['list' => $data]);
    }

    // 查找
    // public function search()
    // {
    //     $param = Request::param('keyword');
    //     // echo $param;
    //     $data = goodslist::where('goods_name', "like", "%$param%")->select();
    //     // dump($data);
    //     return $this->fetch('index', ['list' => $data]);
    // }
    
    // 商品详情页展示
    function read($id)
    {
        // 查询商品单条数据
        $data = goodslist::find($id);
        // dump($data);
        return $this->fetch('detail', ['data' => $data]);
    }
    // 跳转新增页面
    function add()
    {
        return $this->fetch('add');
    }

    // 文件上传
    private function upload()
    {
        // 获取文件
        $file = request()->file('logo');
        if ($file == 'null') {
            $this->error('文件不能为空');
        }
        // dump($file);
        // 移动文件到指定目录
        $info = $file->move('../public/upload');
        // 判断文件是否上传成功
        if ($info) {
            // 获取文件后缀
            // echo $info->getExtension();
            // 获取文件的保存名字
            // echo $info->getSaveName();
            return $goods_logo = "/upload/" . $info->getSaveName();
        } else {
            $this->error('文件上传失败');
        }
    }

    // 保存新增数据
    public function save()
    {
        // 接收参数  请求对象使用的是静态调用
        $data = Request::param();
        $data["goods_logo"] = $this->upload();
        // dump($data);
        // 将数据添加到数据表
        // true表示过滤掉非数据表中的字段
        goodslist::create($data, true);
        // 添加成功，页面跳转到列表页
        $this->success('新增成功', 'index');
        // $this->error('新增失败','index');
        // $this->redirect('index');
    }

    
    // 修改
    public function edit($id)
    {
        $data = goodslist::find($id);
        return $this->fetch('edit', ['data' => $data]);
    }

    public function editSave($id)
    {
        // 获取数据
        $data = Request::param();
        // 判断图片是否被修改
        $file = request()->file('logo');
        if(!empty($file)){
            // 修改后商品的路径
            $data['goods_logo']=$this->upload();
            // 查询原图片地址
            $goods = goodslist::find($id);
            // dump($goods);
        }
        
        // dump($data);
        // $list = [
        //     'goods_name' => $data['goods_name'],
        //     'goods_price' => $data['goods_price'],
        //     'goods_number' => $data['goods_number'],
        //     'goods_logo' => $data['logo']
        // ];
        // Db::name('goods')->where('id', $data['id'])->update($list);
        // $this->success('修改成功', 'index');
        goodslist::where('id',$data['id'])->update($data);
        if(isset($goods)){
            unlink('./'.$goods['goods_logo']);
        }
        $this->success('修改成功', 'index');
    }
    public function delect($id)
    {
        Db::name('goods')->where('id', $id)->delete();
        $this->success('删除成功', 'index');
    }
}
